<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CryptoAuthLib: atca_command.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CryptoAuthLib
   </div>
   <div id="projectbrief">Microchip CryptoAuthentication Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00143.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">atca_command.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Microchip CryptoAuthentication device command builder - this is the main object that builds the command byte strings for the given device. It does not execute the command. The basic flow is to call a command method to build the command you want given the parameters and then send that byte string through the device interface.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &quot;<a class="el" href="a00146_source.html">atca_command.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="a00158_source.html">atca_devtypes.h</a>&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae82a969d437b648238fe1c1ddbd51196"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gae82a969d437b648238fe1c1ddbd51196">atCheckMAC</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:gae82a969d437b648238fe1c1ddbd51196"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand CheckMAC method.  <a href="a00987.html#gae82a969d437b648238fe1c1ddbd51196">More...</a><br /></td></tr>
<tr class="separator:gae82a969d437b648238fe1c1ddbd51196"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a61451b473025766f0b8aaf8cbe8878"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga8a61451b473025766f0b8aaf8cbe8878">atCounter</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga8a61451b473025766f0b8aaf8cbe8878"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Counter method.  <a href="a00987.html#ga8a61451b473025766f0b8aaf8cbe8878">More...</a><br /></td></tr>
<tr class="separator:ga8a61451b473025766f0b8aaf8cbe8878"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e8e14d6ac01e36f5c62568a6203e158"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga8e8e14d6ac01e36f5c62568a6203e158">atDeriveKey</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet, bool has_mac)</td></tr>
<tr class="memdesc:ga8e8e14d6ac01e36f5c62568a6203e158"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand DeriveKey method.  <a href="a00987.html#ga8e8e14d6ac01e36f5c62568a6203e158">More...</a><br /></td></tr>
<tr class="separator:ga8e8e14d6ac01e36f5c62568a6203e158"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5460e5bb2178eb95a3b8db8018d30617"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga5460e5bb2178eb95a3b8db8018d30617">atECDH</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga5460e5bb2178eb95a3b8db8018d30617"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand ECDH method.  <a href="a00987.html#ga5460e5bb2178eb95a3b8db8018d30617">More...</a><br /></td></tr>
<tr class="separator:ga5460e5bb2178eb95a3b8db8018d30617"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96b33dc28e87b1c1855b7f828a89594b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga96b33dc28e87b1c1855b7f828a89594b">atGenDig</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet, bool is_no_mac_key)</td></tr>
<tr class="memdesc:ga96b33dc28e87b1c1855b7f828a89594b"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Generate Digest method.  <a href="a00987.html#ga96b33dc28e87b1c1855b7f828a89594b">More...</a><br /></td></tr>
<tr class="separator:ga96b33dc28e87b1c1855b7f828a89594b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba4a495c2021c837c6de4cdeaaf64813"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gaba4a495c2021c837c6de4cdeaaf64813">atGenKey</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:gaba4a495c2021c837c6de4cdeaaf64813"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Generate Key method.  <a href="a00987.html#gaba4a495c2021c837c6de4cdeaaf64813">More...</a><br /></td></tr>
<tr class="separator:gaba4a495c2021c837c6de4cdeaaf64813"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31f11cb28f4aaf6c654e92e7c5176814"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga31f11cb28f4aaf6c654e92e7c5176814">atHMAC</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga31f11cb28f4aaf6c654e92e7c5176814"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand HMAC method.  <a href="a00987.html#ga31f11cb28f4aaf6c654e92e7c5176814">More...</a><br /></td></tr>
<tr class="separator:ga31f11cb28f4aaf6c654e92e7c5176814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5b69354b7f33537f2ffef3376843a15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gaf5b69354b7f33537f2ffef3376843a15">atInfo</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:gaf5b69354b7f33537f2ffef3376843a15"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Info method.  <a href="a00987.html#gaf5b69354b7f33537f2ffef3376843a15">More...</a><br /></td></tr>
<tr class="separator:gaf5b69354b7f33537f2ffef3376843a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac649ffd477409f414dfcc7e38c19e203"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gac649ffd477409f414dfcc7e38c19e203">atLock</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:gac649ffd477409f414dfcc7e38c19e203"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Lock method.  <a href="a00987.html#gac649ffd477409f414dfcc7e38c19e203">More...</a><br /></td></tr>
<tr class="separator:gac649ffd477409f414dfcc7e38c19e203"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6375d9724ac9ec208e22224c0a210fb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga6375d9724ac9ec208e22224c0a210fb3">atMAC</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga6375d9724ac9ec208e22224c0a210fb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand MAC method.  <a href="a00987.html#ga6375d9724ac9ec208e22224c0a210fb3">More...</a><br /></td></tr>
<tr class="separator:ga6375d9724ac9ec208e22224c0a210fb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab0937e5d717246f51a244e3369e554e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gab0937e5d717246f51a244e3369e554e6">atNonce</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:gab0937e5d717246f51a244e3369e554e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Nonce method.  <a href="a00987.html#gab0937e5d717246f51a244e3369e554e6">More...</a><br /></td></tr>
<tr class="separator:gab0937e5d717246f51a244e3369e554e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9bbe9f768acf9628bbb78fbebb21221"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gae9bbe9f768acf9628bbb78fbebb21221">atPause</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:gae9bbe9f768acf9628bbb78fbebb21221"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Pause method.  <a href="a00987.html#gae9bbe9f768acf9628bbb78fbebb21221">More...</a><br /></td></tr>
<tr class="separator:gae9bbe9f768acf9628bbb78fbebb21221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf90f39bafcd296962ceef461954a1998"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gaf90f39bafcd296962ceef461954a1998">atPrivWrite</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:gaf90f39bafcd296962ceef461954a1998"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand PrivWrite method.  <a href="a00987.html#gaf90f39bafcd296962ceef461954a1998">More...</a><br /></td></tr>
<tr class="separator:gaf90f39bafcd296962ceef461954a1998"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad16fd3d0f3602f4654c29101f35bd2a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gad16fd3d0f3602f4654c29101f35bd2a1">atRandom</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:gad16fd3d0f3602f4654c29101f35bd2a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Random method.  <a href="a00987.html#gad16fd3d0f3602f4654c29101f35bd2a1">More...</a><br /></td></tr>
<tr class="separator:gad16fd3d0f3602f4654c29101f35bd2a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga17fa9d23b7e46c2eb32f8ae6132bb3c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga17fa9d23b7e46c2eb32f8ae6132bb3c4">atRead</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga17fa9d23b7e46c2eb32f8ae6132bb3c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Read method.  <a href="a00987.html#ga17fa9d23b7e46c2eb32f8ae6132bb3c4">More...</a><br /></td></tr>
<tr class="separator:ga17fa9d23b7e46c2eb32f8ae6132bb3c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ecdb99e756b1740ad2119f13c3ab809"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga5ecdb99e756b1740ad2119f13c3ab809">atSecureBoot</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga5ecdb99e756b1740ad2119f13c3ab809"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand SecureBoot method.  <a href="a00987.html#ga5ecdb99e756b1740ad2119f13c3ab809">More...</a><br /></td></tr>
<tr class="separator:ga5ecdb99e756b1740ad2119f13c3ab809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44ad135152469c980f9bf36a5f1477bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga44ad135152469c980f9bf36a5f1477bb">atSHA</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet, uint16_t write_context_size)</td></tr>
<tr class="memdesc:ga44ad135152469c980f9bf36a5f1477bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand SHA method.  <a href="a00987.html#ga44ad135152469c980f9bf36a5f1477bb">More...</a><br /></td></tr>
<tr class="separator:ga44ad135152469c980f9bf36a5f1477bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf41d61bc7317d325a34169eb53c29e7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gaf41d61bc7317d325a34169eb53c29e7c">atSign</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:gaf41d61bc7317d325a34169eb53c29e7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Sign method.  <a href="a00987.html#gaf41d61bc7317d325a34169eb53c29e7c">More...</a><br /></td></tr>
<tr class="separator:gaf41d61bc7317d325a34169eb53c29e7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3890dfc5d5a3ec121ba7436fe90bee23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga3890dfc5d5a3ec121ba7436fe90bee23">atUpdateExtra</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga3890dfc5d5a3ec121ba7436fe90bee23"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand UpdateExtra method.  <a href="a00987.html#ga3890dfc5d5a3ec121ba7436fe90bee23">More...</a><br /></td></tr>
<tr class="separator:ga3890dfc5d5a3ec121ba7436fe90bee23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2beb9e8360555ededb666ad845219fce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga2beb9e8360555ededb666ad845219fce">atVerify</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga2beb9e8360555ededb666ad845219fce"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand ECDSA Verify method.  <a href="a00987.html#ga2beb9e8360555ededb666ad845219fce">More...</a><br /></td></tr>
<tr class="separator:ga2beb9e8360555ededb666ad845219fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaab5bc48599e5f6b938901739f4f46fa7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gaab5bc48599e5f6b938901739f4f46fa7">atWrite</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet, bool has_mac)</td></tr>
<tr class="memdesc:gaab5bc48599e5f6b938901739f4f46fa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand Write method.  <a href="a00987.html#gaab5bc48599e5f6b938901739f4f46fa7">More...</a><br /></td></tr>
<tr class="separator:gaab5bc48599e5f6b938901739f4f46fa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga17ffd71c28597552f5c4517096ef1fb8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga17ffd71c28597552f5c4517096ef1fb8">atAES</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga17ffd71c28597552f5c4517096ef1fb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand AES method.  <a href="a00987.html#ga17ffd71c28597552f5c4517096ef1fb8">More...</a><br /></td></tr>
<tr class="separator:ga17ffd71c28597552f5c4517096ef1fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47c96fd19a050247f7c06e20c296b958"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga47c96fd19a050247f7c06e20c296b958">atSelfTest</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga47c96fd19a050247f7c06e20c296b958"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand AES method.  <a href="a00987.html#ga47c96fd19a050247f7c06e20c296b958">More...</a><br /></td></tr>
<tr class="separator:ga47c96fd19a050247f7c06e20c296b958"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga881ba1c37e33cf65c17983e93dd8c677"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga881ba1c37e33cf65c17983e93dd8c677">atKDF</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd, <a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga881ba1c37e33cf65c17983e93dd8c677"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand KDF method.  <a href="a00987.html#ga881ba1c37e33cf65c17983e93dd8c677">More...</a><br /></td></tr>
<tr class="separator:ga881ba1c37e33cf65c17983e93dd8c677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4177bd66c5981ba86511608150c024e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gaf4177bd66c5981ba86511608150c024e">initATCACommand</a> (<a class="el" href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a> device_type, <a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> ca_cmd)</td></tr>
<tr class="memdesc:gaf4177bd66c5981ba86511608150c024e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializer for ATCACommand.  <a href="a00987.html#gaf4177bd66c5981ba86511608150c024e">More...</a><br /></td></tr>
<tr class="separator:gaf4177bd66c5981ba86511608150c024e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac004e4f2b9a435f9de6cea523c0e9a2d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gac004e4f2b9a435f9de6cea523c0e9a2d">newATCACommand</a> (<a class="el" href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a> device_type)</td></tr>
<tr class="memdesc:gac004e4f2b9a435f9de6cea523c0e9a2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor for ATCACommand  <a href="a00987.html#gac004e4f2b9a435f9de6cea523c0e9a2d">More...</a><br /></td></tr>
<tr class="separator:gac004e4f2b9a435f9de6cea523c0e9a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9404883f6b81e6356862a9bb4b42d4a9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga9404883f6b81e6356862a9bb4b42d4a9">deleteATCACommand</a> (<a class="el" href="a00987.html#gaebeafc249bfe2b00b6809d5c328841d9">ATCACommand</a> *ca_cmd)</td></tr>
<tr class="memdesc:ga9404883f6b81e6356862a9bb4b42d4a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATCACommand destructor.  <a href="a00987.html#ga9404883f6b81e6356862a9bb4b42d4a9">More...</a><br /></td></tr>
<tr class="separator:ga9404883f6b81e6356862a9bb4b42d4a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53ded4ed630b6ef4d292056c2e6b34f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga53ded4ed630b6ef4d292056c2e6b34f6">atCRC</a> (size_t length, const uint8_t *data, uint8_t *crc_le)</td></tr>
<tr class="memdesc:ga53ded4ed630b6ef4d292056c2e6b34f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates CRC over the given raw data and returns the CRC in little-endian byte order.  <a href="a00987.html#ga53ded4ed630b6ef4d292056c2e6b34f6">More...</a><br /></td></tr>
<tr class="separator:ga53ded4ed630b6ef4d292056c2e6b34f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54460acd927854db5d39d6d5c3e8ed7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga54460acd927854db5d39d6d5c3e8ed7c">atCalcCrc</a> (<a class="el" href="a01005.html">ATCAPacket</a> *packet)</td></tr>
<tr class="memdesc:ga54460acd927854db5d39d6d5c3e8ed7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calculates CRC and adds it to the correct offset in the packet data.  <a href="a00987.html#ga54460acd927854db5d39d6d5c3e8ed7c">More...</a><br /></td></tr>
<tr class="separator:ga54460acd927854db5d39d6d5c3e8ed7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7723a58d1781b3ba54e8f45d5729b33a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#ga7723a58d1781b3ba54e8f45d5729b33a">atCheckCrc</a> (const uint8_t *response)</td></tr>
<tr class="memdesc:ga7723a58d1781b3ba54e8f45d5729b33a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function checks the consistency of a response.  <a href="a00987.html#ga7723a58d1781b3ba54e8f45d5729b33a">More...</a><br /></td></tr>
<tr class="separator:ga7723a58d1781b3ba54e8f45d5729b33a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaae5866a78d2f0464b04eee9ef1f97030"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gaae5866a78d2f0464b04eee9ef1f97030">atIsSHAFamily</a> (<a class="el" href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a> device_type)</td></tr>
<tr class="memdesc:gaae5866a78d2f0464b04eee9ef1f97030"><td class="mdescLeft">&#160;</td><td class="mdescRight">determines if a given device type is a SHA device or a superset of a SHA device  <a href="a00987.html#gaae5866a78d2f0464b04eee9ef1f97030">More...</a><br /></td></tr>
<tr class="separator:gaae5866a78d2f0464b04eee9ef1f97030"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae82dca54cc3fd1cc2f1671e98d64df07"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gae82dca54cc3fd1cc2f1671e98d64df07">atIsECCFamily</a> (<a class="el" href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a> device_type)</td></tr>
<tr class="memdesc:gae82dca54cc3fd1cc2f1671e98d64df07"><td class="mdescLeft">&#160;</td><td class="mdescRight">determines if a given device type is an ECC device or a superset of a ECC device  <a href="a00987.html#gae82dca54cc3fd1cc2f1671e98d64df07">More...</a><br /></td></tr>
<tr class="separator:gae82dca54cc3fd1cc2f1671e98d64df07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae41108996848638519849163e51cd10a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00987.html#gae41108996848638519849163e51cd10a">isATCAError</a> (uint8_t *data)</td></tr>
<tr class="memdesc:gae41108996848638519849163e51cd10a"><td class="mdescLeft">&#160;</td><td class="mdescRight">checks for basic error frame in data  <a href="a00987.html#gae41108996848638519849163e51cd10a">More...</a><br /></td></tr>
<tr class="separator:gae41108996848638519849163e51cd10a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Microchip CryptoAuthentication device command builder - this is the main object that builds the command byte strings for the given device. It does not execute the command. The basic flow is to call a command method to build the command you want given the parameters and then send that byte string through the device interface. </p>
<p>The primary goal of the command builder is to wrap the given parameters with the correct packet size and CRC. The caller should first fill in the parameters required in the <a class="el" href="a01005.html" title="an ATCA packet structure. This is a superset of the packet transmitted on the wire....">ATCAPacket</a> parameter given to the command. The command builder will deal with the mechanics of creating a valid packet using the parameter information.</p>
<dl class="section copyright"><dt>Copyright</dt><dd>(c) 2015-2018 Microchip Technology Inc. and its subsidiaries. </dd></dl>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="a00143.html">atca_command.c</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>
